package com.zbkj.admin.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商品表 实体类。
 *
 * @author mybatis-flex-helper automatic generation
 * @since 1.0
 */
@Accessors(chain = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "商品表")
@TableName(value = "eb_product")
@Table(value = "eb_product")
public class EbProductEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 商品id
     */
    @Schema(description = "商品id")
    @Id(keyType = KeyType.Auto)
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 商户Id
     */
    @Schema(description = "商户Id")
    @Column(value = "mer_id")
    @TableField(value = "mer_id")
    private Integer merId;

    /**
     * 商品图片
     */
    @Schema(description = "商品图片")
    @Column(value = "image")
    @TableField(value = "image")
    private String image;

    /**
     * 展示图
     */
    @Schema(description = "展示图")
    @Column(value = "flat_pattern")
    @TableField(value = "flat_pattern")
    private String flatPattern;

    /**
     * 轮播图
     */
    @Schema(description = "轮播图")
    @Column(value = "slider_image")
    @TableField(value = "slider_image")
    private String sliderImage;

    /**
     * 商品名称
     */
    @Schema(description = "商品名称")
    @Column(value = "name")
    @TableField(value = "name")
    private String name;

    /**
     * 商品简介
     */
    @Schema(description = "商品简介")
    @Column(value = "intro")
    @TableField(value = "intro")
    private String intro;

    /**
     * 关键字,英文逗号拼接
     */
    @Schema(description = "关键字,英文逗号拼接")
    @Column(value = "keyword")
    @TableField(value = "keyword")
    private String keyword;

    /**
     * 商户分类id(逗号拼接)
     */
    @Schema(description = "商户分类id(逗号拼接)")
    @Column(value = "cate_id")
    @TableField(value = "cate_id")
    private String cateId;

    /**
     * 品牌id
     */
    @Schema(description = "品牌id")
    @Column(value = "brand_id")
    @TableField(value = "brand_id")
    private Integer brandId;

    /**
     * 平台分类id
     */
    @Schema(description = "平台分类id")
    @Column(value = "category_id")
    @TableField(value = "category_id")
    private Integer categoryId;

    /**
     * 保障服务ids(英文逗号拼接)
     */
    @Schema(description = "保障服务ids(英文逗号拼接)")
    @Column(value = "guarantee_ids")
    @TableField(value = "guarantee_ids")
    private String guaranteeIds;

    /**
     * 商品价格
     */
    @Schema(description = "商品价格")
    @Column(value = "price")
    @TableField(value = "price")
    private BigDecimal price;

    /**
     * 会员价格
     */
    @Schema(description = "会员价格")
    @Column(value = "vip_price")
    @TableField(value = "vip_price")
    private BigDecimal vipPrice;

    /**
     * 市场价
     */
    @Schema(description = "市场价")
    @Column(value = "ot_price")
    @TableField(value = "ot_price")
    private BigDecimal otPrice;

    /**
     * 单位名
     */
    @Schema(description = "单位名")
    @Column(value = "unit_name")
    @TableField(value = "unit_name")
    private String unitName;

    /**
     * 供货商
     */
    @Schema(description = "供货商")
    @Column(value = "supplier")
    @TableField(value = "supplier")
    private String supplier;

    /**
     * 销量
     */
    @Schema(description = "销量")
    @Column(value = "sales")
    @TableField(value = "sales")
    private Integer sales;

    /**
     * 库存
     */
    @Schema(description = "库存")
    @Column(value = "stock")
    @TableField(value = "stock")
    private Integer stock;

    /**
     * 成本价
     */
    @Schema(description = "成本价")
    @Column(value = "cost")
    @TableField(value = "cost")
    private BigDecimal cost;

    /**
     * 虚拟销量
     */
    @Schema(description = "虚拟销量")
    @Column(value = "ficti")
    @TableField(value = "ficti")
    private Integer ficti;

    /**
     * 浏览量
     */
    @Schema(description = "浏览量")
    @Column(value = "browse")
    @TableField(value = "browse")
    private Integer browse;

    /**
     * 商品二维码地址(用户小程序海报)
     */
    @Schema(description = "商品二维码地址(用户小程序海报)")
    @Column(value = "code_path")
    @TableField(value = "code_path")
    private String codePath;

    /**
     * 淘宝京东1688类型
     */
    @Schema(description = "淘宝京东1688类型")
    @Column(value = "soure_link")
    @TableField(value = "soure_link")
    private String soureLink;

    /**
     * 主图视频链接
     */
    @Schema(description = "主图视频链接")
    @Column(value = "video_link")
    @TableField(value = "video_link")
    private String videoLink;

    /**
     * 运费模板ID
     */
    @Schema(description = "运费模板ID")
    @Column(value = "temp_id")
    @TableField(value = "temp_id")
    private Integer tempId;

    /**
     * 排序
     */
    @Schema(description = "排序")
    @Column(value = "sort")
    @TableField(value = "sort")
    private Integer sort;

    /**
     * 总后台排序
     */
    @Schema(description = "总后台排序")
    @Column(value = "rank")
    @TableField(value = "rank")
    private Integer rank;

    /**
     * 规格 0单 1多
     */
    @Schema(description = "规格 0单 1多")
    @Column(value = "spec_type")
    @TableField(value = "spec_type")
    private Integer specType;

    /**
     * 是否回收站
     */
    @Schema(description = "是否回收站")
    @Column(value = "is_recycle")
    @TableField(value = "is_recycle")
    private Integer isRecycle;

    /**
     * 是否单独分佣
     */
    @Schema(description = "是否单独分佣")
    @Column(value = "is_sub")
    @TableField(value = "is_sub")
    private Integer isSub;

    /**
     * 状态（0：未上架，1：上架）
     */
    @Schema(description = "状态（0：未上架，1：上架）")
    @Column(value = "is_show")
    @TableField(value = "is_show")
    private Integer isShow;

    /**
     * 审核状态：0-无需审核 1-待审核，2-审核成功，3-审核拒绝
     */
    @Schema(description = "审核状态：0-无需审核 1-待审核，2-审核成功，3-审核拒绝")
    @Column(value = "audit_status")
    @TableField(value = "audit_status")
    private Integer auditStatus;

    /**
     * 是否加入审核，0-正常，1-审核流程中
     */
    @Schema(description = "是否加入审核，0-正常，1-审核流程中")
    @Column(value = "is_audit")
    @TableField(value = "is_audit")
    private Integer isAudit;

    /**
     * 拒绝原因
     */
    @Schema(description = "拒绝原因")
    @Column(value = "reason")
    @TableField(value = "reason")
    private String reason;

    /**
     * 是否删除
     */
    @Schema(description = "是否删除")
    @Column(value = "is_del")
    @TableField(value = "is_del")
    private Integer isDel;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @Column(value = "create_time")
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @Column(value = "update_time")
    @TableField(value = "update_time")
    private LocalDateTime updateTime;

    /**
     * 基础类型：0=普通商品,1-积分商品,2-虚拟商品,4=视频号,5-云盘商品,6-卡密商品
     */
    @Schema(description = "基础类型：0=普通商品,1-积分商品,2-虚拟商品,4=视频号,5-云盘商品,6-卡密商品")
    @Column(value = "type")
    @TableField(value = "type")
    private Integer type;

    /**
     * 是否付费会员商品
     */
    @Schema(description = "是否付费会员商品")
    @Column(value = "is_paid_member")
    @TableField(value = "is_paid_member")
    private Integer isPaidMember;

    /**
     * 是否自动上架
     */
    @Schema(description = "是否自动上架")
    @Column(value = "is_auto_up")
    @TableField(value = "is_auto_up")
    private Integer isAutoUp;

    /**
     * 营销类型：0=基础商品,1=秒杀,2=拼团
     */
    @Schema(description = "营销类型：0=基础商品,1=秒杀,2=拼团")
    @Column(value = "marketing_type")
    @TableField(value = "marketing_type")
    private Integer marketingType;

    /**
     * 配送方式：1-商家配送，2-到店核销
     */
    @Schema(description = "配送方式：1-商家配送，2-到店核销")
    @Column(value = "delivery_method")
    @TableField(value = "delivery_method")
    private String deliveryMethod;

    /**
     * 兑换数量
     */
    @Schema(description = "兑换数量")
    @Column(value = "exchange_num")
    @TableField(value = "exchange_num")
    private Integer exchangeNum;

    /**
     * 是否热门推荐
     */
    @Schema(description = "是否热门推荐")
    @Column(value = "is_hot")
    @TableField(value = "is_hot")
    private Integer isHot;

    /**
     * 兑换积分
     */
    @Schema(description = "兑换积分")
    @Column(value = "redeem_integral")
    @TableField(value = "redeem_integral")
    private Integer redeemIntegral;

    /**
     * 是否支持退款
     */
    @Schema(description = "是否支持退款")
    @Column(value = "refund_switch")
    @TableField(value = "refund_switch")
    private Integer refundSwitch;

    /**
     * 系统表单ID
     */
    @Schema(description = "系统表单ID")
    @Column(value = "system_form_id")
    @TableField(value = "system_form_id")
    private Integer systemFormId;

    /**
     * 积分
     */
    @Schema(description = "积分")
    @Column(value = "points")
    @TableField(value = "points")
    private BigDecimal points;

    /**
     * 金币
     */
    @Schema(description = "金币")
    @Column(value = "gold_coin")
    @TableField(value = "gold_coin")
    private BigDecimal goldCoin;

    /**
     * 版本(库存控制)
     */
    @Schema(description = "版本(库存控制)")
    @Column(value = "version")
    @TableField(value = "version")
    private Long version;

    /**
     * 秒杀积分
     */
    @Schema(description = "秒杀积分")
    @Column(value = "seckill_points")
    @TableField(value = "seckill_points")
    private BigDecimal seckillPoints;


}
